package org.jiajie.coffeecodes.sp.beans.factory.config;

import org.jiajie.coffeecodes.sp.beans.BeansException;
import org.jiajie.coffeecodes.sp.beans.factory.ConfigurableListableBeanFactory;

/**
 * 定义 BeanFactoryPostProcessor
 * 这个接口是满足于在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
 *
 * @author jay
 */
public interface BeanFactoryPostProcessor {

    /**
     * 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制。
     *
     * @param beanFactory beanFactory
     * @throws BeansException BeansException
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
